Ladybird adopts Rust, with help from AI - Ladybird
Ladybird adopts Rust, with help from AI - Ladybird
LadybirdにおけるC++からRustへの段階的移行方針
Rust採用理由
メモリ安全性とエコシステム成熟度の優位性
C++互換性維持]を前提とした現実的選択
FirefoxChromiumなど既存ブラウザでのRust導入実績
LibJSのRust移植
Lexer、Parser、AST、Bytecode Generatorなど自己完結的コンポーネントを対象
test262による広範なテストカバレッジ
Claude CodeCodexを用いた人間主導型翻訳プロセス
移植プロセスの特徴
数百単位の小規模プロンプトによる段階的移植
アドバーサリアルレビューによる誤り検出と品質向上
C++版とRust版のAST、Bytecodeの完全一致を要件とする設計
成果
約25,000行のRustコード
2週間で完了した移植作業
test262, Ladybird Regression Testsで0件のリグレッション
JSベンチマークにおける性能劣化なし
Lockstep Modeによる実ブラウジング検証
コード品質に関する見解
初期段階ではC++構造を模倣した非イディオマティックなRust
C++パイプライン廃止後に最適化と簡素化を予定
今後の方針
C++による開発継続とRust移植の並行進行
Interop Boundaryを明確化した共存アーキテクチャ
移植対象と順序はコアチームが管理
外部貢献者は事前調整を推奨